package com.qzsoft.system.modules.permission.rolebusiness.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qzsoft.system.modules.permission.dept.dto.SysDeptDTO;
import com.qzsoft.system.modules.permission.rolebusiness.dto.SysRoleBusinessDTO;
import com.qzsoft.system.modules.permission.rolebusiness.dto.SysUserRoleBusinessDTO;
import com.qzsoft.system.modules.permission.rolebusiness.entity.SysRoleBusinessEntity;


import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 角色管理(SysRoleBusiness)表服务接口
 *
 * @author sdmq
 * @since 2020-09-01 13:55:06
 */
public interface SysRoleBusinessService {

	/**
	 * 仅取回目录树
	 * @return
	 */
	List<SysRoleBusinessDTO> treeFolder();

	/**
	 * 取回当前节点的内容
	 * @param pid 父目录
	 * @return
	 */
	List<SysRoleBusinessEntity> listRole(String pid);

	/**
	 * 数据分页
	 * @param params
	 * @return IPage
	 */
	IPage<SysRoleBusinessEntity> page(Map<String, Object> params);

	/**
	 * 数据列表
	 * @param params
	 * @return
	 */
	List<SysRoleBusinessEntity> list(Map<String, Object> params);

	/**
	 * 单个数据
	 * @param id
	 * @return
	 */
	SysRoleBusinessEntity get(String id);

	/**
	 * 保存
	 * @param entity
	 */
	void save(SysRoleBusinessEntity entity);


	/**
	 * 保存分组
	 * @param entity
	 * @return
	 */
	String saveGroup(SysRoleBusinessEntity entity);

	/**
	 * 更新
	 * @param entity
	 */
	void update(SysRoleBusinessEntity entity);

	/**
	 * 批量删除
	 * @param ids
	 */
	void delete(String[] ids);

	/**
	 * 导出Excel
	 * @param params
	 * @param response
	 */
	void exportXls(Map<String, Object> params, HttpServletResponse response);
	/**
	 * 获取所有的业务树
	 * @return
	 */
	List<SysRoleBusinessDTO> getSysRoleBusiness();
	/**
	 * 获取所有的部门
	 * @return
	 */
	List<SysDeptDTO> getSysDeptBusiness(String pid);
	/**
	 * 通过审批角色和机构id查询审批人
	 * @return
	 */
	List<SysUserRoleBusinessDTO> getUserByRoleAndDept(String roleBusinessId, String deptId);

	/**
	 * 通过模糊查询
	 * @param queryKey
	 * @return
	 */
	List<SysDeptDTO> getUserByQueryKey(String queryKey);

}